package com.mb.pic.service;

import com.mb.common.utils.UploadUtil;
import com.mb.common.vo.PicUploadResult;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.UUID;
@Service
public class PicServiceImpl implements PicService{
    @Override
    public PicUploadResult picUpLoad(MultipartFile pic) {
        PicUploadResult result=new PicUploadResult();
        //校验后缀 **.png **.jpg **.gif
        String oName = pic.getOriginalFilename();
        //截取后缀 .png .jpg .gif
        String extName=oName.substring(oName.lastIndexOf("."));
        String regexExt=".(png|jpg|gif|jpg|img)$";
        if(!extName.matches(regexExt)){
            //result设置error 返回result
            result.setError(1);
            return result;
        }
        //生成一个path路径 在存储时用到,url拼接也用到 /easymall/4/d/c/d/e/3/d/e
        String path= UploadUtil
                .getUploadPath(oName,"/easymall")+"/";
        //生成磁盘目录 d:/img/easymall/4/d/c/d/e/3/d/e
        String dir="d:/img"+path;
        //目录dir不存在时才创建
        File _dir=new File(dir);
        if(!_dir.exists()){
            //说明多级目录不存在
            _dir.mkdirs();
        }
        //将图片写入到这个目录中
        //重命名一个存储在该路径下的文件名称 easymall+时间+8129 uuid
        String nName= UUID.randomUUID().toString()+extName;
        //26128d47-423b-4220-8047-544ff899db50.png
        try{
            pic.transferTo(new File(dir+nName));
        }catch (Exception e){
            e.printStackTrace();
            result.setError(1);
            return result;
        }
        //生成一个可以访问该图片文件的url
        String url="http://image.jt.com/"+path+nName;
        result.setUrl(url);
        return result;
    }
    }

